############################
##                       _oo0oo_
##                      o8888888o
##                      88" . "88
##                      (| -_- |)
##                      0\  =  /0
##                    ___/`---'\___
##                  .' \\|     |// '.
##                 / \\|||  :  |||// \
##                / _||||| -:- |||||- \
##               |   | \\\  - /// |   |
##               | \_|  ''\---/''  |_/ |
##               \  .-\__  '-'  ___/-. /
##             ___'. .'  /--.--\  `. .'___
##          ."" '<  `.___\_<|>_/___.' >' "".
##         | | :  `- \`.;`\ _ /`;.`/ - ` : | |
##         \  \ `_.   \_ __\ /__ _/   .-` /  /
##     =====`-.____`.___ \_____/___.-`___.-'=====
##                       `=---='
##
##
##     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
##
##           佛祖保佑     永不宕机     永无BUG
##
##LastEditors: PartyParrot(__init__)
##Date: 2022-06-11 12:43:18
##LastEditTime: 2022-06-12 19:12:20
##FilePath: EasyToken.py
##Author: PartyParrot(__init__)
##Description: 
############################

# -*- coding:utf-8 -*-

# 数字
DIGITS = "1234567890"

# 整数
INT = 'INT'
# 浮点数
FLOAT = 'FLOAT'
# 加
PLUS = "PLUS"
# 减
MINUS = "MINUS"
# 乘
MUL = "MUL"
# 除
DIV = "DIV"
# 左括号
LPAREN = "LPAREN"
# 右括号
RPAREN = "RPAREN"

# Create an tokan class
class Token:
    # Token，即标记，用于将一串字符标记为一个可读取对象，如：1 + 2 就可以被标记为 [INT:1, PLUS, 2]，其中 INT:1, PLUS, 2 就是 Token 
    def __init__(self, type_, value=None):
        self.value = value
        self.type = type_

    # __repr__ : 在调用该 Class 时所打印的值
    def __repr__(self):
        if self.value:
            return f"{self.type}:{self.value}"
        return f"{self.type}"